package com.sunwayhorizo.health.business.dto.clinic.consultation;

import java.util.*;

import org.hibernate.validator.constraints.*;

import com.sunwayhorizo.health.common.validateGroups.*;

public class ConsultationDTO
{
    // 会诊申请单号
    private String consultationId;

    // 住院号
    @NotEmpty(message = "病案号（住院号）不能为空！", groups = { NewConsultation.class })
    private String hospitalizationNO;

    // 患者id
    @NotEmpty(message = "患者编码不能为空！", groups = { NewConsultation.class })
    private String patientId;

    // 患者name
    private String patientName;

    // 会诊申请人id
    @NotEmpty(message = "申请人编码不能为空！", groups = { NewConsultation.class })
    private String inviterId;

    // 会诊申请人名称
    private String inviterName;

    // 会诊申请人所在病区id
    @NotEmpty(message = "申请人所在病区编码不能为空！", groups = { NewConsultation.class })
    private String inviterWorkgroupId;

    // 会诊申请人所在病区Name
    private String inviterWorkgroupName;

    // 会诊等级(普通会诊、急诊会诊)
    private String level;

    // 申请日期(日期格式YYYY-MM-DD HH:mm:ss)
    @NotEmpty(message = "申请日期不能为空！", groups = { NewConsultation.class })
    private String applicationDate;

    // 请到日期(日期格式YYYY-MM-DD HH:mm:ss)
    @NotEmpty(message = "请到日期不能为空！", groups = { NewConsultation.class })
    private String confirmDate;

    // 临床诊断
    private String diagnosis;

    // 简要病史
    private String medicalHistory;

    // 体征
    private String physicalSign;

    // 相关实验、特殊检查资料
    private String medicalData;

    // 会诊目的及要求
    private String purpose;

    // 会诊受邀信息
    private List<InviteInfoDTO> inviteInfos = new ArrayList<InviteInfoDTO>();

    //
    private InviteInfoDTO inviteInfo = new InviteInfoDTO();

    /**
     * 以下为查询信息
     */
    // 会诊类型(0：受邀; 1:申请; null:全部 )
    private String typeCode;
    // 会诊状态( 0:未接受 ; 1:接受 ; 2:完成 ; null:全部 ; 3:接受或完成)
    private String statusCode;
    // 会诊关联科室id
    @NotEmpty(message = "当前工作组编码不能为空！", groups = { FindConsultation.class })
    private String workgroupId;
    // 会诊关联员工id
    @NotEmpty(message = "当前员工编码不能为空！", groups = { FindConsultation.class })
    private String employeeId;
    // 查询申请开始日期(日期格式YYYY-MM-DD HH:mm:ss)
    private String from;
    // 查询申请结束日期(日期格式YYYY-MM-DD HH:mm:ss)
    private String to;


    @Override
    public String toString()
    {
        return "ConsultationDTO [\nconsultationId=" + consultationId + ", \nhospitalizationNO=" + hospitalizationNO + ", \npatientId=" + patientId
                + ", \npatientName=" + patientName + ", \ninviterId=" + inviterId + ", \ninviterName=" + inviterName + ", \ninviterWorkgroupId="
                + inviterWorkgroupId + ", \ninviterWorkgroupName=" + inviterWorkgroupName + ", \nlevel=" + level + ", \napplicationDate="
                + applicationDate + ", \nconfirmDate=" + confirmDate + ", \ndiagnosis=" + diagnosis + ", \nmedicalHistory=" + medicalHistory
                + ", \nphysicalSign=" + physicalSign + ", \nmedicalData=" + medicalData + ", \npurpose=" + purpose + ", \ninviteInfos=" + inviteInfos
                + ", \ninviteInfo=" + inviteInfo + ", \ntypeCode=" + typeCode + ", \nstatusCode=" + statusCode + ", \nworkgroupId=" + workgroupId
                + ", \nemployeeId=" + employeeId + ", \nfrom=" + from + ", \nto=" + to + "\n]";
    }


    public String getLevel()
    {
        return level;
    }


    public void setLevel(String level)
    {
        this.level = level;
    }


    public String getApplicationDate()
    {
        return applicationDate;
    }


    public void setApplicationDate(String applicationDate)
    {
        this.applicationDate = applicationDate;
    }


    public String getDiagnosis()
    {
        return diagnosis;
    }


    public void setDiagnosis(String diagnosis)
    {
        this.diagnosis = diagnosis;
    }


    public String getMedicalHistory()
    {
        return medicalHistory;
    }


    public void setMedicalHistory(String medicalHistory)
    {
        this.medicalHistory = medicalHistory;
    }


    public String getPhysicalSign()
    {
        return physicalSign;
    }


    public void setPhysicalSign(String physicalSign)
    {
        this.physicalSign = physicalSign;
    }


    public String getMedicalData()
    {
        return medicalData;
    }


    public void setMedicalData(String medicalData)
    {
        this.medicalData = medicalData;
    }


    public String getPurpose()
    {
        return purpose;
    }


    public void setPurpose(String purpose)
    {
        this.purpose = purpose;
    }


    public void setConfirmDate(String confirmDate)
    {
        this.confirmDate = confirmDate;
    }


    public String getConfirmDate()
    {
        return confirmDate;
    }


    public String getHospitalizationNO()
    {
        return hospitalizationNO;
    }


    public void setHospitalizationNO(String hospitalizationNO)
    {
        this.hospitalizationNO = hospitalizationNO;
    }


    public String getPatientId()
    {
        return patientId;
    }


    public void setPatientId(String patientId)
    {
        this.patientId = patientId;
    }


    public void setInviteInfos(List<InviteInfoDTO> inviteInfos)
    {
        this.inviteInfos = inviteInfos;
    }


    public List<InviteInfoDTO> getInviteInfos()
    {
        return inviteInfos;
    }


    public void setInviterId(String inviterId)
    {
        this.inviterId = inviterId;
    }


    public String getInviterId()
    {
        return inviterId;
    }


    public void setPatientName(String patientName)
    {
        this.patientName = patientName;
    }


    public String getPatientName()
    {
        return patientName;
    }


    public void setInviterWorkgroupId(String inviterWorkgroupId)
    {
        this.inviterWorkgroupId = inviterWorkgroupId;
    }


    public String getInviterWorkgroupId()
    {
        return inviterWorkgroupId;
    }


    public String getTypeCode()
    {
        return typeCode;
    }


    public void setTypeCode(String typeCode)
    {
        this.typeCode = typeCode;
    }


    public String getStatusCode()
    {
        return statusCode;
    }


    public void setStatusCode(String statusCode)
    {
        this.statusCode = statusCode;
    }


    public String getWorkgroupId()
    {
        return workgroupId;
    }


    public void setWorkgroupId(String workgroupId)
    {
        this.workgroupId = workgroupId;
    }


    public String getEmployeeId()
    {
        return employeeId;
    }


    public void setEmployeeId(String employeeId)
    {
        this.employeeId = employeeId;
    }


    public String getFrom()
    {
        return from;
    }


    public void setFrom(String from)
    {
        this.from = from;
    }


    public String getTo()
    {
        return to;
    }


    public void setTo(String to)
    {
        this.to = to;
    }


    public String getInviterName()
    {
        return inviterName;
    }


    public void setInviterName(String inviterName)
    {
        this.inviterName = inviterName;
    }


    public String getInviterWorkgroupName()
    {
        return inviterWorkgroupName;
    }


    public void setInviterWorkgroupName(String inviterWorkgroupName)
    {
        this.inviterWorkgroupName = inviterWorkgroupName;
    }


    public void setConsultationId(String consultationId)
    {
        this.consultationId = consultationId;
    }


    public String getConsultationId()
    {
        return consultationId;
    }


    public InviteInfoDTO getInviteInfo()
    {
        return inviteInfo;
    }


    public void setInviteInfo(InviteInfoDTO inviteInfo)
    {
        this.inviteInfo = inviteInfo;
    }

}
